博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flask – SQLAlchemy成员增加
阅读量:4599 次
发布时间:2019-06-09

本文共 3259 字,大约阅读时间需要 10 分钟。

目录

简介

结构

$ tree -I "__pycache*|*.pyc" -FCL 3.|-- database.db|-- readme.md|-- templates/|   |-- addnew.html|   |-- home.html|   `-- show_all.html`-- views.py

展示

1. 主页

720033-20190719214954510-95842715.png

2. 学生信息查看

720033-20190719215106361-986697090.png

3. 添加学生信息

720033-20190719215214766-1723489616.png

技术

  • Flask – SQLAlchemy的使用
  • flask中表单数据的传递

运行

python .\views.py

代码

创建数据库表单

# crdb.pyimport sqlite3conn = sqlite3.connect('database.db')print "Opened database successfully";conn.execute('CREATE TABLE students (name TEXT, addr TEXT, city TEXT, pin TEXT)')print "Table created successfully";conn.close()

views视图

from flask import Flask, request, flash, url_for, redirect, render_templatefrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'app.config['SECRET_KEY'] = "random string"app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Falsedb = SQLAlchemy(app)class Student(db.Model):    # __tablename__ = 'student'    id = db.Column(db.Integer, primary_key=True)    name = db.Column(db.String(100))    city = db.Column(db.String(50))    addr = db.Column(db.String(200))    pin = db.Column(db.String(10))    def __init__(self, name, city, addr, pin):        self.name = name        self.city = city        self.addr = addr        self.pin = pin@app.route('/')def home():    """主页"""    return render_template('home.html')@app.route('/show_all')def show_all():    """展示所有"""    data = Student.query.all()    return render_template('show_all.html', students=data)@app.route('/addnew', methods=['GET', 'POST'])def addnew():    """添加新成员"""    if request.method == 'POST':        f_name = request.form['name']        f_city = request.form['city']        f_addr = request.form['addr']        f_pin = request.form['pin']        if not f_name or not f_city or not f_addr:            flash('请填入必要项')        else:            stuinfo = Student(f_name, f_city, f_addr, f_pin)            db.session.add(stuinfo)            db.session.commit()            flash('添加成功')            return redirect(url_for('show_all'))    return render_template('addnew.html')if __name__ == '__main__':    # db.drop_all()    db.create_all()    app.run(debug=True)

home主页

    
主页

查看学生信息

添加学生信息

添加成员addnew.html

         

学生信息表


{%- for category, message in get_flashed_messages(with_categories = true) %}
{
{ message }}
{%- endfor %}

返回主页

展示页show_all

   

学生表


添加新成员

{% for student in students %}
{% endfor %}
姓名 城市 地址 邮编
{
{ student.name }}
{
{ student.city }}
{
{ student.addr }}
{
{ student.pin }}

消息提示

消息通知: {%- for message in get_flashed_messages() %} {
{ message }} {%- endfor %}

返回主页

转载于:https://www.cnblogs.com/xuwei1/p/11215931.html

你可能感兴趣的文章
STL_map.插入
查看>>
绑定Ligerui中的ligerComboBox二级联动
查看>>
JSON.parse()和JSON.stringify()
查看>>
手机端触摸的方向判断
查看>>
java和C++之动态绑定对比
查看>>
listView绑定数据
查看>>
[转]oracle数据类型和对应的java类型
查看>>
高效率excel操作技巧!关键时刻不马虎,实用!
查看>>
20145325张梓靖 实验三 "敏捷开发与XP实践"
查看>>
h2数据库的简单使用
查看>>
抽象类
查看>>
DB_EF_1
查看>>
linux 免密码登录
查看>>
Linux中 设置apache,mysql 开机启动
查看>>
CoreAnimation
查看>>
TTL电平,CMOS电平,OC门,OD门基础知识
查看>>
JavaScript面试题
查看>>
[转帖]架构师眼中的高并发架构
查看>>
ios的一些开源资源
查看>>
beego——session模块
查看>>